package com.agentfactory.teleoreactive.debugger;

import com.agentfactory.teleoreactive.interpreter.AbstractTeleoReactiveAgent;
import com.agentfactory.visualiser.impl.DefaultSnapshot;
import com.agentfactory.visualiser.impl.DefaultStateManager;

public class TeleoReactiveStateManager extends DefaultStateManager {
	protected DefaultSnapshot createSnapshot() {
		return new TeleoReactiveSnapshot();
	}

	protected void constructSnapshot(DefaultSnapshot shot) {
		super.constructSnapshot(shot);

		AbstractTeleoReactiveAgent agt = (AbstractTeleoReactiveAgent) agent;
		TeleoReactiveSnapshot snap = (TeleoReactiveSnapshot) shot;

		snap.currentBeliefs = agt.getBeliefs();
		snap.programStack = agt.getStack();
		snap.actionTrace = agt.getActionTrace();
	}
}